package day2;

import java.math.BigDecimal;
import java.util.Scanner;

import org.junit.Test;

public class ForDemo {
	public void test1() {
//		****
//		****
//		****
		for (int i = 1; i <= 3; i++) {// 外层循环控制行数
			for (int j = 1; j <= 4; j++) {// 内层循环控制列数
				System.out.print("*");
			}
			System.out.println();
		}
	}
	
	
	@Test
	public void test2() {
//		*
//		**
//		***
//		****
//		*****
		for (int i = 1; i <= 5; i++) {
			// i=1    j=1
			// i=2    j=2
			// i=3    j=3
			for (int j = 1; j <= i ; j++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
	
	@Test
	public void test3() {
		for (int i = 1; i <= 5; i++) {
			for (int j = 1; j <= i; j++) {
				System.out.print(j);
			}
			System.out.println();
		}
	}
	
	@Test
	public void test4() {
//		 *
//		***
//	   *****
//	  *******
//	 *********
//	***********
		for (int i = 1; i <= 6; i++) {
			for (int j = 1; j <= 6 - i; j++ ) {
				System.out.print(" ");
			}
			for (int k = 1; k <= (2 * i - 1) ; k++) {
				System.out.print("*");
			}
			System.out.println();
		}
		System.out.println("-------------------------------------");
		for (int i = 1; i <= 6; i++) {
			for (int j = 1; j <= i - 1; j++) {
				System.out.print(" ");
			}
			for (int k = 1; k <= (13 - 2 * i); k++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
	
	//	3、计算1-100以内所有奇数的和以及所有偶数的和，分别打印出来。
	@Test
	public void test5() {
		int sum1 = 0;// 奇数的和
		int sum2 = 0;// 偶数的和
		for (int i = 1; i <= 100; i++) {
			if (i % 2 != 0) {
				sum1 = sum1 + i;
			} else {
				sum2 = sum2 + i;
			}
		}
		System.out.println("奇数和=" + sum1);
		System.out.println("偶数和=" + sum2);
	}

	//	4、用for循环输出1—1000之间能被5整除的数，且每行输出3个	
	@Test
	public void test6() {
		int count = 0;
		for (int i = 1; i <= 1000; i++) {
			if (i % 5 == 0) {
				System.out.print(i + " ");
				count++;
				if (count % 3 == 0) {
					System.out.println();
				}
			}
//			if (count == 3) {
//				System.out.println();
//				count == 0;
//			}
		}
	}
	
	//	5、计算9的阶乘
	@Test
	public void test7() {
		int factorial = 1;
		for (int i = 9; i >= 1; i--) {
			factorial *= i; 
		}
		System.out.println("9的阶乘=" + factorial);
	}

	//	6、题目：企业发放的奖金根据利润提成。利润(I)低于或等于10万元时，奖金可提10%；
//	利润高于10万元，低于20万元时，低于10万元的部分按10%提成，高于10万元的部分，可可提成7.5%；
//	20万到40万之间时，高于20万元的部分，可提成5%；40万到60万之间时高于40万元的部分，可提成3%；
//	60万到100万之间时，高于60万元的部分，可提成1.5%，高于100万元时，超过100万元的部分按1%提成，从键盘输入当月利润，求应发放奖金总数？
	@Test
	public void test8() {
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入获得的利润(万元)：");
		double profit = scanner.nextDouble();
		while(true) {
			if(profit >= 0) {
				break;
			}
			System.out.println("请再次输入：");
			profit = scanner.nextDouble();
		}
		if (profit <= 10) {
			System.out.println("可获提成：" + (0.1 * profit) + "万元");
		} else if (profit <= 20) {
			System.out.println("可获提成：" + (1 + (profit-10)*0.075) + "万元");
		} else if (profit <= 40) {
			System.out.println("可获提成：" + (1.75 + (profit-20)*0.05) + "万元");
		} else if (profit <= 60) {
			System.out.println("可获提成：" + (2.75 + (profit-40)*0.03) + "万元");
		} else if (profit <= 100) {
			System.out.println("可获提成：" + (3.35 + (profit-60)*0.015) + "万元");
		} else {
			System.out.println("可获提成：" + (3.95 + (profit-100)*0.01) + "万元");
		}	
	}

	//	7、使用循环打印100-200之间所有的素数（只能被1和自己整除的数叫素数）
	@Test
	public void test9() {
		// 外层循环i=100表示：看是不是素数
		for (int i = 100; i <= 200; i++) {
			int count = 0;
			for (int j = 2; j < i; j++) {
				if (i % j == 0) {
					count++;
				} 
			}
			if (count == 0) {
				System.out.println(i);
			}
		}
	}
	
	@Test
	public void test10() {
//		*
//	   **
//	  ***
//	 ****
//	*****
		for (int i = 1; i <= 5; i++) {
			for (int j = 1; j <= 5 - i; j++) {
				System.out.print(" ");
			}
			for (int k = 1; k <= i; k++) {
				System.out.print("*");
			}
			System.out.println();
		}
		System.out.println("-----------------------------------------");
		for (int i = 1; i <= 5; i++) {
			for (int j = 1; j <= 5 - i; j++) {
				System.out.print(" ");
			}
			for (int k = 1; k <= i; k++) {
				System.out.print("*");
			}
			for (int u = 1; u <= i - 1; u++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
	
	@Test
	public void test11() {
		int count1 = 0;
		for (int i = 2; i <= 100; i++) {
			int count2 = 0;
			
			for (int j = 2; j < i; j++) {
				if (i % j == 0) {
					count2++;
					break;
				}
			}
			if (count2 == 0) {
				count1++;
				System.out.print(i + " ");
				if (count1 % 3 == 0) {
					System.out.println();
				}
			}
		}
		for (int i = 100; i <= 200; i++) {
			// 初始认为是素数，如果找到了就设置为false
			boolean isSuShu = true;
			for (int j = 2; j < i; j++) {
				if (i % j == 0) {
					isSuShu = false;// 只要找到任意一个就不是素数
					break;// 找到一个就不需要再去找了
				}
			}
			if (isSuShu == true) {
				System.out.println(i);
			}
		}
	}
	
	@Test
	public void test12() {
		double b1 = 0.3;
		double b2 = 0.2;
		System.out.println(b1 - b2);
		BigDecimal bigdecimal1 = new BigDecimal("0.3");
		BigDecimal bigdecimal2 = new BigDecimal("0.2");
		BigDecimal result = bigdecimal1.subtract(bigdecimal2);
		System.out.println(result);
	}
}
